Uitwisselprofiel IGJ Contextinformatie t.b.v. aangekondigd inspectiebezoek

Over Uitwisselprofiel IGJ Contextinformatie t.b.v. aangekondigd inspectiebezoek

1.0.0-RC1-acc


Publicatiedatum:
18-09-2025

Inwerkingtreding:
18-09-2025

1.2.3. Wat is het aantal geplande uren aan medewerkers met een zorgverlener functie per soort werkovereenkomst?

Concepten

Relaties

Eigenschappen

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: IGJ 1.2.3
2# Parameters: ?peildatum, ?vestigingsnummer
3# Ontologie: versie 3.0.0 of nieuwer
4 
5PREFIX onz-org: <http://purl.org/ozo/onz-org#>
6PREFIX onz-g: <http://purl.org/ozo/onz-g#>
7PREFIX onz-pers: <http://purl.org/ozo/onz-pers#> 
8PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
9PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
10PREFIX onz-plan: <http://purl.org/ozo/onz-plan#>
11
12SELECT
13    ?kwalificatie_niveau
14    (SUM(?alle_soorten_ok) AS ?Totaal_aantal_geplande_uren_ZV)
15    (SUM(?onbepaald) AS ?Aantal_geplande_uren_ZV_onbepaalde_tijd) 
16    (SUM(?bepaald) AS ?Aantal_geplande_uren_ZV_bepaalde_tijd)
17    (SUM(?oproep) AS ?Aantal_geplande_uren_ZV_oproep)
18    (SUM(?bbl) AS ?Aantal_geplande_uren_ZV_BBL)
19    (SUM(?inhuur) AS ?Aantal_geplande_uren_ZV_inhuur)
20    (SUM(?uitzend) AS ?Aantal_geplande_uren_ZV_uitzend)
21    (SUM(?stage) AS ?Aantal_geplande_uren_ZV_stage)
22    (SUM(?vrijwilliger) AS ?Aantal_geplande_uren_ZV_vrijwilliger)
23WHERE {
24    {
25        SELECT DISTINCT ?kwalificatie_niveau {
26            {
27                ?functie
28                    a onz-pers:ZorgverlenerFunctie ;
29                    onz-g:hasQuality / onz-g:hasQualityValue ?functie_niveau .
30                ?functie_niveau
31                    a onz-pers:ODBKwalificatieWaarde ;
32                    rdfs:label ?kwalificatie_niveau .
33            } UNION {
34                BIND("Totaal aantal ingeplande uren" AS ?kwalificatie_niveau)
35            }
36        }
37    }
38    OPTIONAL{
39        {
40            SELECT DISTINCT 
41                ?medewerker
42                ?kwalificatie_niveau
43                ?onbepaald ?bepaald ?oproep ?bbl ?inhuur ?uitzend ?stage ?vrijwilliger
44                ?alle_soorten_ok
45            {
46                # BIND("2024-01-29"^^xsd:date AS ?peildatum)
47                # BIND(?vestigingsnummer AS ?vestigingsnummer)  # "000001254" "000001287"
48                
49                BIND(?peildatum AS ?peildatum_argument)
50                
51                VALUES ?type_overeenkomst {
52                    onz-pers:ArbeidsOvereenkomstOnbepaaldeTijd
53                    onz-pers:ArbeidsOvereenkomstBepaaldeTijd
54                    onz-pers:OproepOvereenkomst
55                    onz-pers:ArbeidsOvereenkomstBBL
56                    onz-pers:InhuurOvereenkomst
57                    onz-pers:UitzendOvereenkomst
58                    onz-pers:StageOvereenkomst
59                    onz-pers:VrijwilligersOvereenkomst
60                }
61                
62                ?overeenkomst 
63                    a ?type_overeenkomst ;
64                    onz-pers:heeftOpdrachtnemer ?medewerker ;
65                    onz-g:hasPart ?afspraak .
66                ?afspraak
67                    onz-g:isAbout ?functie ;
68                    onz-g:startDatum ?start_afspraak .
69                OPTIONAL {?afspraak onz-g:eindDatum ?eind_afspraak}
70                ?functie
71                    a onz-pers:ZorgverlenerFunctie ;
72                    onz-g:hasQuality /onz-g:hasQualityValue ?functie_niveau .
73                
74                # --- DAN-venster t.o.v. peildatum
75                BIND(xsd:dateTime(CONCAT(STR(?peildatum_argument), "T07:00:00")) AS ?start_dienstdag)
76                BIND(xsd:dateTime(?start_dienstdag + "P1D"^^xsd:dayTimeDuration) AS ?eind_dienstdag)
77    
78                FILTER(  # overlap tussen afspraak obv diensturen en peildatum diensturen
79                    xsd:dateTime(CONCAT(STR(?start_afspraak), "T07:00:00")) <= ?eind_dienstdag && 
80                    (xsd:dateTime(CONCAT(STR(?eind_afspraak), "T07:00:00"))  + "P1D"^^xsd:dayTimeDuration >= ?start_dienstdag || !BOUND(?eind_afspraak))
81                )
82                
83                ?functie_niveau a onz-pers:ODBKwalificatieWaarde .
84                {
85                    ?functie_niveau
86                        a onz-pers:ODBKwalificatieWaarde ;
87                        rdfs:label ?kwalificatie_niveau .
88                } UNION {
89                    BIND("Totaal aantal ingeplande uren" AS ?kwalificatie_niveau ) 
90                }
91                # geplande uren informatie
92                [] a onz-plan:PlanInformationObject ;
93                    onz-plan:specifiesPlannedEntity ?geplande_periode ;
94                    onz-plan:hasPlannedStart ?start_gepland ;
95                    onz-plan:hasPlannedEnd ?eind_gepland .
96                
97                BIND(?start_gepland < ?eind_dienstdag && ?start_dienstdag < ?eind_gepland AS ?overlap)
98                FILTER(?overlap)
99                BIND(IF(?start_gepland < ?start_dienstdag, ?start_dienstdag, ?start_gepland) AS ?start_gepland_corr)
100                BIND(IF(?eind_gepland > ?eind_dienstdag, ?eind_dienstdag, ?eind_gepland) AS ?eind_gepland_corr)
101                
102                BIND(HOURS(?start_gepland_corr) + (MINUTES(?start_gepland_corr)/60.0) + (SECONDS(?start_gepland_corr)/3600.0) AS ?start_decimal)
103                BIND(HOURS(?eind_gepland_corr) + (MINUTES(?eind_gepland_corr)/60.0)  + (SECONDS(?eind_gepland_corr)/3600.0)  AS ?eind_decimal_temp)
104                BIND(?eind_decimal_temp * IF(?eind_decimal_temp <= 0, -1, 1) AS ?eind_decimal) 
105                BIND(?eind_decimal - ?start_decimal AS ?geplande_uren_temp)
106                BIND(?geplande_uren_temp + IF(?geplande_uren_temp < 0, 24, 0) AS ?geplande_uren)
107                
108                ?geplande_periode a onz-plan:PlannedEntity ;
109                    onz-plan:hasPlannedType onz-pers:GewerktePeriode .
110                
111                # PlannedEntityAssertion voor overeenkomst koppeling
112                [] a onz-plan:PlannedEntityAssertion ;
113                    onz-plan:hasPlannedSubject ?geplande_periode ;
114                    onz-plan:hasPlannedProperty onz-g:definedBy ;
115                    onz-plan:hasPlannedObject ?overeenkomst .
116                
117                # PlannedEntityAssertion voor locatie koppeling  
118                [] a onz-plan:PlannedEntityAssertion ;
119                    onz-plan:hasPlannedSubject ?geplande_periode ;
120                    onz-plan:hasPlannedProperty onz-g:hasPerdurantLocation ;
121                    onz-plan:hasPlannedObject ?werk_locatie .
122                
123                ?werk_locatie onz-g:partOf* ?vestiging . # vind Vestiging die hoort bij werk_locatie
124                ?vestiging 
125                    a onz-org:Vestiging ;
126                    onz-g:identifiedBy ?vestigingsnummer_object .
127                ?vestigingsnummer_object
128                    a onz-org:Vestigingsnummer ;
129                    onz-g:hasDataValue ?vestigingsnummer . # filter vestiging op gegeven vestigingsnummer
130                BIND(IF (?type_overeenkomst = onz-pers:ArbeidsOvereenkomstOnbepaaldeTijd, ?geplande_uren, 0) AS ?onbepaald)
131                BIND(IF (?type_overeenkomst = onz-pers:ArbeidsOvereenkomstBepaaldeTijd, ?geplande_uren, 0) AS ?bepaald)
132                BIND(IF (?type_overeenkomst = onz-pers:OproepOvereenkomst, ?geplande_uren, 0) AS ?oproep)
133                BIND(IF (?type_overeenkomst = onz-pers:ArbeidsOvereenkomstBBL, ?geplande_uren, 0) AS ?bbl)
134                BIND(IF (?type_overeenkomst = onz-pers:InhuurOvereenkomst, ?geplande_uren, 0) AS ?inhuur)
135                BIND(IF (?type_overeenkomst = onz-pers:UitzendOvereenkomst, ?geplande_uren, 0) AS ?uitzend)
136                BIND(IF (?type_overeenkomst = onz-pers:StageOvereenkomst, ?geplande_uren, 0) AS ?stage)
137                BIND(IF (?type_overeenkomst = onz-pers:VrijwilligersOvereenkomst, ?geplande_uren, 0) AS ?vrijwilliger)
138                BIND(?geplande_uren AS ?alle_soorten_ok)
139            }
140        }
141    }
142}
143GROUP BY ?kwalificatie_niveau
144ORDER BY ?kwalificatie_niveau
145